Installing the Command Line Interface (CLI)
We interact with Blurr using a Command Line Interface (CLI). Blurr is installed via pip:
$ pip install blurr
To check the installation was correct:
$ blurr --version
The help command lists all the commands:
$ blurr --help
Working with DTCs
DTCs are the central part of blurr. There are several CLI commands to validate and test DTCs
Validate
The validate command will check whether a DTC is valid.
$ blurr validate weekly_rollup.dtc
Transform
The transform command will apply the DTC to a source of event data.
Example:
$ blurr transform \
--streaming-dtc ./dtcs/sessionize-dtc.yml \
--window-dtc ./dtcs/windowing-dtc.yml \
--source file://path
Debug
Print logs for debugging using the --debug
option
blurr transform --streaming-dtc=streaming-dtc.yml --window-dtc=window-dtc.yml raw-data-window.json --debug
Supported data sources
Valid sources of data are:
Type | Description | URI example |
---|---|---|
text |
A text file | file://<path> |
internet |
An internet resource | http://blurr.ai/data-example.log |
S3 |
AWS S3 location | s3://bucket/key |
Supported data destinations
Transformed data is output to stdout
. Data destination details are defined inside the DTC.
More destinations will be supported in the future, please create an issue to request for a specific data destination! Or better yet, contribute to Blurr and build it!
Deploying Blurr on AWS
The deploy command is used to rollout an instance of Blurr. Currently, only AWS is supported.
$ blurr deploy config.json
Configuration File
Blurr configuration can become a bit verbose, and some data formats (such as lists or dicts) are not supported in the command line. For those cases, the CLI allows passing a JSON configuration file with all the required parameters:
{
"dtcs":{
"include":"./*-dtc.yml"
},
"sources":[
{
"type":"s3",
"uri":"s3://bucket/key"
}
]}
Available options are:
dtcs
: The set of DTCs to be part of the deployment
sources
: URIs for the data sources to be transformed (TODO: how many sources can we define in the config?)
The deploy command
Blurr gets deployed as a Cloudformation Stack. After a successful deployment we should see a stack named Blurr in the Cloudformation console.
TODO: add image
We can override the name of the stack using the --stack-name
option:
$ blurr deploy config.json --stack-name blurr-staging
We can check the configuration of a blurr stack at any time using the config command:
$ blurr config --stack-name blurr-staging
If you feel more comfortable deploying Blurr by yourself it is possible to export the Cloudformation template from the command line:
$ blurr export-cfn config.json --out cfn-template.zip
Updating Configuration
Configuration can be updated using update-config
command:
$ blurr update-config --stack-name blurr-prod
TODO: don't we need to provide the new config as an argument?